The present invention relates to image compression, and, more particularly, is directed to quantizing image data in accordance with a prediction of the noise introduced by the quantization.
The Moving Picture Experts Group system (MPEG 1, MPEG 2) has been proposed as an international standard for high efficiency encoding and decoding of a moving picture. Three types of pictures are defined in the MPEG system, an I picture which is encoded in a standalone manner, a P picture which is encoded by forward prediction from one reference picture which may be an I picture or a P picture, and a B picture which is bidirectionally encoded by forward and backward prediction from two reference pictures. A typical sequence of encoded pictures, in temporal order, may be I B B P B B P B B I B B . . . .
A picture is divided into macro blocks. An I picture comprises intra-macro blocks. P and B pictures respectively comprise non-intra macro blocks.
FIG. 1 shows a conventional video encoder according to the MPEG system. Blocks of data representing an I picture are applied to input terminal 100 and thence to subtractor 107. Since an I picture is not predicted from a reference picture, subtractor 107 simply forwards the I picture data blocks to DCT circuit 101 which orthogonally transforms the picture data blocks to coefficient data blocks, and supplies the blocks of coefficient data to quantizer 102.
Quantizer 102 quantizes the I picture coefficient data using a quantization step size selected by quantization control circuit 102. The quantization step size may also be referred to as a quantization scale. The quantized coefficient data are variable length encoded by VLC circuit 103, such as with a two dimensional Huffman code, and supplied to buffer 110. Buffer occupancy detecting circuit 117 monitors the percentage of buffer capacity used by the encoded data and supplies buffer occupancy information to the quantization control circuit 108, which selects a quantization-step size so that the amount of encoded data in the buffer 110 remains within its capacity, i.e., does not overflow. The encoded data is delivered to output terminal 114 for transmission or recording.
The quantized coefficient data are also supplied to inverse quantizing circuit 109, which dequantizes the quantized data to produce reconstructed coefficient data. Inverse DCT circuit 111 inverse orthogonally transforms the reconstructed coefficient data to produce reconstructed image data blocks and supplies the image data blocks to frame memory 105 for storage therein as a locally decoded reference picture.
Subsequently, blocks of data representing either a B picture or a P picture are applied to terminal 100 and thence to motion detecting circuit 104 which detects motion within the supplied data blocks and produces motion vectors between the input B or P picture blocks and the stored reference picture blocks. The motion vectors are supplied to motion compensating circuit 113. The reference picture stored in frame memory 105 is motion compensated, that is, modified using the motion vectors by the circuit 113, to produce predicted picture data which is applied to subtractor 107 and adder 112. Subtractor 107 subtracts the predicted picture data from the input picture data to produce difference data which is orthogonally transformed, quantized and variable length coded, as generally described above. The quantized input picture data are also supplied to inverse quantizing circuit 109 and inverse DCT circuit 111 to produce reconstructed difference data which are added to the image data of the motion compensated reference picture by adder 112. The result is stored in frame memory 105 as a new reference picture.
In the encoder of FIG. 1, in order to generate data from the buffer 110 at a predetermined rate, it is necessary to limit the amount of encoded data per predetermined period of time to a predetermined amount. The process of limiting operates so that when the amount of encoded data in the buffer 110 is large, the quantization step size is selected to be coarse, and when the amount of encoded data in the buffer 110 is small, the quantization step size is selected to be fine.
Increasing the quantization step size to be coarse decreases the amount of encoded data, and also degrades the quality of the reconstructed picture. For images having a lot of information, degradation in quality is a serious problem.
Decreasing the quantization step size to be fine increases the amount of encoded data, and also reduces degradation in the quality of the reconstructed picture. For images having little information, degradation in quality is not such a serious problem, and reduction in the amount of encoded data is desirable.
Thus, it is seen that to select the optimum quantization step size, it is necessary to consider picture quality as well as buffer occupancy.